/**
 * 
 */
package com.bstek.code.util;



import java.util.List;

import org.springframework.util.StringUtils;

import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;

/**
 * @description 实现json的数据操作工具类
 * @author zhangkun
 * @date 2020年6月4日
 *
 */
public class JsonUtil {
	
	/**
	 * 
	 * @description 使用jackSon将json字符串转换为指定类
	 * @author zhangkun
	 * @date 2020年6月4日
	 * @param json
	 * @param clazz
	 * @return
	 * @throws Exception
	 */
	public static <T> T jsonToObject(String json,Class<T> clazz) throws Exception{
		if(!StringUtils.hasText(json)) return null;
		ObjectMapper mapper = new ObjectMapper();
		return mapper.readValue(json, clazz);
	}
	

	/**
	 * 
	 * @description 使用jackSon将json字符串转换为指定类的集合
	 * @author zhangkun
	 * @date 2020年6月4日
	 * @param json
	 * @param obj
	 * @return
	 * @throws Exception
	 */
	public static <T>  List<T> jsonToList(String json,Class<T> clazz) throws Exception{
		if(!StringUtils.hasText(json)) return null;
		ObjectMapper mapper = new ObjectMapper();
		JavaType javaType = mapper.getTypeFactory().constructParametricType(List.class, clazz);
		return mapper.readValue(json, javaType);
	}
	
}
